\section{Project Goal}

\subsection{Basic Idea}
The basic idea of our project is to evaluate different distributed clock synchronisation algorithms over an asynchronous bus communication. Therefore we are going to implement a csma/ca protocol providing basic fault tolerancy methods and an easy way to estimate message round trip time and message priorising.
Upon the protocol, detailed described in section \ref{sec:bus}, we settle the algorithms for the clock synchronisation.\\

Each node has divers hardware such as buttons, leds, a bulp, a lcd and some other things as its periferial. We want to display drift rates of clocks on the lcd and trigger faults in the nodes internal clock or cause bus overloads with the connected buttons.\\

The outcome of this project should be the experience in the field of asynchronous real time bus engineering and to be able to estimate influences of overloads and faults to applications upon them.
We try to give a link between theoretical and practical aspects and how they relate.

\subsection{Requirements}

\subsubsection{ULFTRTP}
\begin{req}
\label{req:ulftrtp:analyzeable}
\textbf{analyzeable: }the protocol has to be relatively easy to analyze with respect to worst case timing.
\end{req}

\begin{req}
\label{req:ulftrtp:interfacing}
\textbf{interfacing: }the protocol design has to follow strictly interface guidelines. This means:
\begin{enumerate}
 \item lower levels of the protocol can only be accessed by higher levels through the defined layer interfaces.
 \item higher levels of the protocol cannot be accessed by lower levels. Data to higher layers can only be propagated using callback mechanisms. 
\end{enumerate}

\end{req}

\begin{req}
\label{req:ulftrtp:easy migration}
\textbf{migration: }the protocol has to be migratable in arbitrary applications with minimal effort.
\end{req}

\begin{req}
\label{req:ulftrtp:resource consumption}
\textbf{resource consumption: }the protocol has to be adaptable to minimal hardware constraints.
\end{req}


Motivation
\begin{center}
\begin{itemize}
  \item Embedded communication for home automation are expensive
    \begin{itemize}
      \item Certification necessary
      \item Licence needed
      \item ...
    \end{itemize}
  \item Implementation of existing protocols are often resource intensive
  \item Migration of additional components in given systems needs expertise
\end{itemize}
\end{center}
%\end{frame}

Project goals
\begin{center}
\begin{itemize}
 \item \begin{large}Masterless\end{large}
 \item \begin{large}Up to 450m bus length\end{large}
 \item \begin{large}Usable for small microcontrollers\end{large}
 \item \begin{large}Low configuration overhead\end{large}
 \item \begin{large}Provide basic fault tolerance\end{large}
 \item \begin{large}Easily adaptable to existing projects\end{large}
 \item \begin{large}Easily migrateable from existing systems\end{large}
 \item \begin{large}Separation of communication and application layers\end{large}
\end{itemize}
\end{center}




\subsubsection{Clock Synchronization}

\begin{req}
\label{req:clock:analyzeable}
\textbf{analyzeable: }the clock synchronisation has to be relatively easy to analyze.
\end{req}

\begin{req}
\label{req:clock:exchangeable}
\textbf{exchangeable: }the specific clock synchronisation algorithms have to be easily interchangeable with other clock synchronisation algorithms, as we want to try out different algorithms.\\
This Requirement correlates with Requirement \ref{req:ulftrtp:interfacing}.
\end{req}